/* 
 * File:   Cell.hxx
 * Author: enric
 *
 * Created on 26 de enero de 2012, 17:22
 */

#ifndef CELL_HXX
#define	CELL_HXX

#define NO_KEY 0

#include "StringUtils.hxx"

enum eShape {
	star,
	plus,
	minus,
	slash,
	none
};

/**
 * State Variable: Cell
 */
class Cell
{
public:
	Cell( unsigned ident, unsigned x, unsigned y );
	Cell( Cell* c);
	~Cell();

	unsigned identifier() 	 const { return m_identifier; }
	unsigned x()             const { return m_x; }
	unsigned y()             const { return m_y; }
	eShape&  keyhole()       { return m_keyhole; }
	bool&    locked()        { return m_locked; }


protected:
	unsigned	m_identifier;
	eShape  	m_keyhole;
	bool            m_locked;
	unsigned	m_x;
	unsigned	m_y;
};

#endif	/* CELL_HXX */

